package com.weiqiao.mall.domain;

import lombok.Data;

import java.util.List;

/**
 * 商城表
 *
 * @author tiyer
 */
@Data
public class ShopkeeperEntity {

    /**
     * 商城基本属性
     **/
    private int company_id;// 公司id

    private String mall_id;// 店铺ID(时间秒)

    private String mall_name;// 店铺名称

    private String address;// 店铺地址

    private String name;// 商户姓名

    private String mobile;// 电话

    private String createdate;// 申请日期

    private String banner;// 店铺图片 **商城版对应轮播图**

    private String goods_id;// 商品列表 **商城版对应商品列表**

    private String license;// 工商营业执照照片

    private Double postTotal = 0.0;// 邮费

    private String notice_url;// 商品公告图片地址

    private String know_url;// 商品须知图片地址

    // app店铺信息新加字段
    private String complaint_call;// 维权电话

    private String area_code;// 座机区号

    private String landline;// 座机号

    // App 店铺 通用设置新增字段
    private int is_sales;// 是否显示销量 1为显示 0为不显示

    private int is_message;// 是否显示留言 1为显示 0为不显示

    private int share_way; // 分享方式

    // app 店铺 交易设置
    private int payment_time;// 设置付款时间

    private int is_cod;//是否支持货到付款 1为支持，0为不支持

    private Double payment_outMoney = 0.0;//设置货到付款预付定金前超出金额限制

    private Double payment_frontMoney = 0.0;//设置货到付款预付定金

    private int is_payOnline;//是否同时支持在线支付 1为支持 0为不支持

    private int inventory_count;//库存计数 0：拍下减库存 1：支付减库存

    //app 店铺 分佣设置
    private Double consume_percent = 0.0;//消费返利比例(个人购买分佣金总额的百分比为自买返利)

    private Double generalize_percent = 0.0;//推广返利比例(下级购买，分总佣金的百分比作为返利)

    private Double percentage_percent = 0.0;//三级分销佣金比例(下下级购买，上上级可获得总佣金的百分比作为返利)

    private Double commission_percent = 0.0;//佣金总额比例

    private int rebate_company_id;//返利生效公司ID（443为微桥云, 102为巢之安）

    /**
     * 签收结算天数
     */
    private Integer order_sign_time;

    private Double receipt_limit = 0.0;//满额提现限制,超过满额限制才可以提现

    // 推广员推广返利
    private int commission_promoter;

    // 团长推广返利
    private int commission_team;

    // 团长、推广员的最低收益
    private int commission_mini;

    private String share_poster_img;//app分享海报图

    private String vip_img;//会员权益下方展示

    private List<shopDecoration> shop_decoration;// 店铺装修

    private List<CommodityEntity> banners;// 轮播图信息 （显示用）

    private List<CommodityEntity> goods;// 商品列表信息 （显示用）

    /**
     * 商城基本属性
     **/

    private String icon;// 店铺logo 图标

    private String time;// 营业时间

    private String detail;// 店铺详情

    private String location;// 坐标

    private String longitude;// 经度

    private String latitude;// 纬度

    private String notice;// 公告

    private List<String> depart;// 分类 货架id

    private String dicount;// 活动

    private String ticket_id;// 优惠券

    private int isopen;// 营业状态 0：营业中 1：打烊 2：休息中

    private int state;// 审核状态 0:未审核 1：审核

    private String open_id;// 商户open_id

    private int create_id;// 所属人ID

    private String distance = "0";// 两点之间的距离（米/千米） 显示用

    private int order_num;// 月销售订单

    private List<String> collectors_id;// 收藏者

    private List<ReservationService> serviceText;// 服务文章实体集合

    // app 店铺 地址管理新增字段
    private List<AddressManagement> address_setting;

    //专题
    private List<shopTopicTitle> shop_topic_title;

    private List<shopTopic> shop_topic;//专题

    private List<Feedback> feedback;//意见反馈

    // app种果树游戏商品信息
    private List<AppGameFruiterCommodity> app_game_fruiter_commodity;

    // app分享规则
    private List<AppGameShareRule> app_game_share_rule;

    // app果树生长周期
    private List<AppGameGrowth> app_game_growth;

    private List<AppUserSign> appUserSignList;//签到规则奖励

    private String sign_rule_remark;//签到规则说明

    /**
     * 新增礼物领取设置
     */
    private int open_gift_receive_time; // 是否开启自定义领取时间 0 否 1 是

    private String gift_receive_time_start; // 自定义开始时间

    private String gift_receive_time_end; // 自定义结束时间

    // 服务实体
    @Data
    public static class ReservationService {
        private String article_id;// 文章id

        private String title;// 文章标题

        private String editor;// 编辑人

        private int visit_num;// 访问量

        private String create_date;// 创建时间

        private int state;// app端是否显示 0不显示 1 显示

        private int is_delete;// 是否删除(0 未删除 1已删除)

        private String content;// 内容
    }

    // app地址管理
    @Data
    public static class AddressManagement {

        private String number;// 编号 时间戳

        private String province;// 省

        private String city;// 市

        private String district;// 区

        private String street;// 详细街道

        private String contacts;// 联系人

        private String tel;// 联系电话

        private String landline_telephone;// 座机号码

        private int type;// 地址类型 1为退货地址 0 为收货地址

        private int is_remove;// 是否删除 1为否 0为是
    }

    @Data
    public static class shopDecoration {
        private String id;// 时间戳

        private int position;// 所在位置(0启动页 1首页 2商品详情 3购物车 4我的)

        private int type;// 类型(0轮播图 1货架)

        private String type_id;// 类型id

        private String type_name;// 分类内容

        private int weight;// 排序 1最大

        private String create_time;// 创建时间

        private String customer_id;// 创建者id

        private int delete;// 是否删除 1为没有 0为删除
    }

    @Data
    public static class shopTopicTitle {
        private String title_id;//主题id

        private String title_content;//主题内容

        private int topic_type;//专题类型 0热点 1养生

        private List<String> topic_ids;//段落id集合

        private int visit_num;//访问量

        private String editor;//操作人

        private String create_date;//创建时间

        private int status;//专题状态 0进行中 1已失效

        private String cover_img;//专题封面

        //段落集合 不存储,展示用
        private List<shopTopic> topicList;
    }

    @Data
    public static class shopTopic {
        //专题实体，专题里面每一段落都是一个实体
        private String topic_id;//段落id
        private String topic_name;//段落名称
        private String topic_content;//内容 富文本
        private String commodity_id;//商品id
        private int weight;//权重  排序 1最大
        private String create_date;//创建时间
        private String editor;//操作人
        //页面显示用
        private CommodityEntity commodityEntity;
    }

    @Data
    public static class Feedback {
        private String id;
        private String content;//意见/反馈
        private int member_id;//反馈人会员id
        private String nickname;//反馈人昵称
        private String contact;//联系方式(手机/qq/邮箱)
        private String create_date;//创建时间
        private List<Affix> voucher;//凭证

        @Data
        public static class Affix {
            private String id;// 订单主键id
            private String url;// 订单主键id
        }
    }

    /**
     * app种果树游戏商品实体
     *
     * @author Administrator
     */
    @Data
    public static class AppGameFruiterCommodity {
        private String commodity_id;
    }

    /**
     * app种果树游戏-果树生长周期
     *
     * @author Administrator
     */
    @Data
    public static class AppGameGrowth {
        /**
         * 主键id  固定1：种子，2：萌芽，3：幼苗4：大树，5：开花，6：结果，7：成熟
         */
        private String growth_id;
        /**
         * 生长周期名称
         */
        private String growth_name;
        /**
         * 所需巢动力
         */
        private Integer chao_power;
        /**
         * 备注说明
         */
        private String remarks;

    }

    /**
     * app种果树游戏分享规则
     *
     * @author Administrator
     */
    @Data
    public static class AppGameShareRule {
        /**
         * 主键id
         */
        private String rule_id;
        /**
         * 规则类型：1：分享，2：邀请好友种树，3：邀请好友注册，4：签到，5：连续签到，6：分享商品，7：下单，8：玩游戏
         */
        private Integer type;
        /**
         * 获得巢动力：负值为扣除
         */
        private Integer chao_power;
        /**
         * 签到次数：当type=5时才有用
         */
        private Integer signin_count;
        /**
         * 每天玩游戏次数：当type=8时才有用，每天限制玩游戏次数(需要定时任务0点置为0)
         */
        private Integer game_count;
    }

    @Data
    public static class AppUserSign {
        private int sign_day;//连续签到天数
        private String sign_gift;//优惠卷id
    }
}
